# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Spark the Electric Jester 3 Template

game: Spark the Electric Jester 3
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.

Spark the Electric Jester 3:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  #################
  # Basic Options #
  #################
  goal_location:
    # What should the goal stage be? Goals are in their vanilla locations
    # Utopia Shelter: Defeat the final boss within Utopia Shelter to goal
    # Freom Mk-0: Defeat the secret Freom boss to goal
    # Requirements Only: Goal automatically sends upon meeting the progression requirements and going to the World Map
    utopia_shelter: 50
    freom_mk0: 0
    requirements_only: 0

  progression_mode:
    # What should be the mode of progression for this player?
    # 
    # Gates: Similar to Sonic Adventure 2 AP, levels are placed in gates with very configurable requirements to move to the next gate
    # Vanilla Entrance Randomizer: The world map is unlocked like in vanilla Spark 3
    # Level Items: You must find levels in the stages in order to progress. Levels are in their vanilla locations
    # Open World: All levels are unlocked from the start, effectively Gates but with only Gate 0
    #         - The goal level is the only exception. Progression Options denote the requirements
    #         - Levels are in their vanilla locations
    gates: 50
    level_items: 0
    open_world: 0

  ability_rando:
    # Randomize the abilities Spark normally can use into the item pool
    #         (Double Jump, Wall Jump/Walk, Dash, Charge Dash, Down Dash, Jester Dash, Combat)
    'false': 0
    'true': 50

  gimmick_rando:
    # Puts the stage gimmicks into the item pool
    'false': 0
    'true': 50

  vehicle_rando:
    # Puts the car and copter into the item pool
    'false': 0
    'true': 50

  difficulty:
    # How difficult should the logic be
    # WARNING: At the moment the difficulty is all over the place.
    # If you have a suggestion or a question, please ask in the future game design thread
    # 
    # normal: The easiest option, designed for those new to the game
    # hard: You will need to be observant of the stage layout and know how to best utilize Spark's movement and simple tech
    # expert: Requires knowledge for hard difficulty as well as less simple speedrun tricks. All tricks are fair game
    normal: 0
    hard: 50
    expert: 0

  energy_logic:
    # Should energy-requiring moves be relevant in logic? You may be required to restart the stage multiple times
    'false': 50
    'true': 0

  character_logic:
    # Should characters be relevant in logic? Does not affect the unlock requirements for Utopia Shelter
    # You may still be required to use energy with Fark
    'false': 0
    'true': 50

  spark2_stages:
    # Adds the 14 Spark 2 stages
    'false': 0
    'true': 50

  starting_stages:
    # Which locations are you guaranteed to start with?
    # If a goal stage is not in this list and has checks/goal, it will be put into the item pool
    # If progression is set to Gates, these locations are guaranteed to always be accessible (with exception to the goal)
    # If the goal is "Requirements Only", you will need the "Level Unlock: Requirements" item to goal (which this option gives by default)
    ['Utopia Shelter', 'Requirements', 'Freom Mk-0']

  #######################
  # Progression Options #
  #######################
  sphere_zero_list:
    # What is the list of stages that may be used for starting level with Level Items or guaranteed gate 0 stages with Gates
    ['Cold-Dry Desert', 'A.M Village', 'Arid Hole', 'Roadway Rally', 'Squabble Spillway', 'Aviator Highway']

  freedom_count:
    # How many freedom medals to put into the item pool.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 2000
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-2000: 0 # random value between 0 and 2000

  freedom_required:
    # What's the required percentage of freedom medals to unlock Utopia Shelter
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  require_characters:
    # Should Fark and Sfarx be required to unlock Utopia Shelter?
    'false': 0
    'true': 50

  required_completion:
    # What percentage of levels in a gate (rounding up) should be completed before unlocking the next?
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    40: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  required_speed:
    # What percentage of speed medals should be required per level gate
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  speed_type:
    # Should the required speed medals be gold, diamond or both
    gold: 50
    diamond: 0
    both: 0

  required_score:
    # What percentage of score medals should be required per level gate
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  score_type:
    # Should the required score medals be gold, diamond or both
    gold: 50
    diamond: 0
    both: 0

  required_explore:
    # What percentage of stages should be explored to unlock Utopia Shelter
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  ##################
  # Gating Options #
  ##################
  gate_zero_completions:
    # How many stages from the Sphere 0 list should be in the first gate? Increasing this can help with generation errors
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    2: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  ################
  # Extra Checks #
  ################
  explore_hunt:
    # Add a location to each stage for collecting all explore medals
    'off': 50
    locations_only: 0
    shuffle_medals: 0

  exploresanity:
    # Adds the 180 exploration medals as checks (300 with Spark 2 stages)
    'false': 50
    'true': 0

  scoresanity:
    # Adds the 14 gold and/or 14 diamond score medals to the location pool. (28 each with Spark 2 stages)
    none: 50
    gold: 0
    diamond: 0
    both: 0

  speedsanity:
    # Adds the 30 gold and/or 30 diamond speed medals to the location pool. (44 each with Spark 2 stages)
    # WARNING: Logic Not Implemented
    none: 50
    gold: 0
    diamond: 0
    both: 0

  shopsanity:
    # Adds the 26 shop checks to the location pool
    'false': 50
    'true': 0

  coinsanity:
    # Adds the 72 collectable coins in the collectathon stages as checks and optionally put them in the item pool
    # 
    # Shuffle Coins - Puts the coins in the item pool and requires the vanilla amount to complete the stage
    # Shuffle and Require All - Puts the coins in the item pool and requires all the coins to complete the stage
    'off': 50
    'on': 0
    shuffle_coins: 0
    shuffle_and_require_all: 0

  batterysanity:
    # Adds the 13 batteries in car stages as checks (making the car not useless)
    'false': 50
    'true': 0

  checkpointsanity:
    # Adds the 237 checkpoints as checks (326 with Spark 2 stages)
    'false': 50
    'true': 0

  bubblesanity:
    # In-dev sanity, expect instability between minor versions
    'false': 50
    'true': 0

  capsulesanity:
    # In-dev sanity, expect instability between minor versions
    'false': 50
    'true': 0

  downdash_buttons:
    # By default, Down Dash isn't a very progressive item, only being useful for 1 check
    # This option adds buttons that you need to logically Down Dash onto as locations
    # The exact number may change between releases
    'false': 50
    'true': 0

  goal_checks:
    # Which goal locations should have checks inside them? If the current goal location is included, the completion checks will not be randomized
    # The unlock requirements for each of these is the level item
    # "Utopia Shelter" contains
    #         - 29 checkpoints
    # "Freom Mk-0" contains
    #         - no extra checks
    # "Requirements" sends a completion check when the "Requirements Only" goal would otherwise be reached
    []

  endless_dive_checks:
    # How many checks should be in Endless Dive
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 110
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-110: 0 # random value between 0 and 110

  ################
  # Item Options #
  ################
  combat_moves:
    # Should the 8 combat moves be in the item pool?
    'false': 0
    'true': 50

  combat_option:
    # Under the normal gating mode, Combat hard locks anything past the first gate.
    # This means you are at the whim of the randomizer to progress past Gate 0
    # These options can help you progress quicker
    # 
    # Normal: Bosses must be defeated, Combat is placed purely at the randomizer's whim
    # Local Early: Guarantees the required combat item is in this game and early sphere
    # Optional Bosses: You do not need to defeat bosses in order to unlock the next gate
    # Start: Start with combat, takes it out of the item pool
    normal: 50
    local_early: 0
    optional_bosses: 0
    start: 0

  progressive_combo:
    # How many combat items should be in the pool?
    # These items are progressive, first one provides the ability to fight
    # and subsequent items give you permanent combo (adjustable in client settings)
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 11
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-11: 0 # random value between 1 and 11

  progressive_score:
    # How many score multiplier options should be in the pool?
    # These items are progressive and can be adjusted in client settings
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  progressive_timestop:
    # How many timestop items should be in the pool?
    # These items slow down the in-game timer, making the speed medals easier to obtain
    # These items are progressive and can be adjusted in client settings
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  progressive_energy:
    # How many progressive energy items should be in the pool?
    # Each item provides a configurable amount of energy per second
    # while on the ground, configurable in the client
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  trap_chance:
    # Chance to receive traps instead of filler
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  #################
  # Miscellaneous #
  #################
  labmode:
    # Overrides the ability randomizer and automatically opens all stages, for labbing checks.
    # WARNING: For development purposes only
    'false': 50
    'true': 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
